package com.welink.cmp.statemachine.machine;

/**
 * 防火墙事件枚举类
 * 描述防火墙在不同生命周期中触发的事件
 */
public enum HostEvent {

    /**
     * 采购到货事件
     */
    NULL("采购到货"),

    /**
     * 上架事件
     */
    MOUNTED("上架"),
    /**
     * 质检
     */
    QUALITY_CHECK_SUCCESS("质检"),
    /**
     * 质检
     */
    QUALITY_CHECK_FAIL("质检失败"),
    /**
     * 分配事件
     */
    ALLOCATED("分配"),

    /**
     * 部署
     */
    DEPLOY("部署"),

    /**
     * 回收事件
     */
    RECYCLED("回收"),

    /**
     * 故障事件
     */
    FAILED("故障"),

    /**
     * 修复事件
     */
    REPAIRED("修复"),

    /**
     * 下架事件
     */
    UNMOUNTED("下架"),

    /**
     * 设备到期事件
     */
    EXPIRED("设备到期"),

    /**
     * 维修失败事件
     */
    REPAIR_FAILED("维修失败"),
    /**
     * 入库
     */
    PUT_STOCK("入库"),
    /**
     * 出库
     */
    OUT_STOCK("出库");


    private final String description;

    HostEvent(String description) {
        this.description = description;
    }

    /**
     * 获取事件描述
     *
     * @return 事件描述
     */
    public String getDescription() {
        return description;
    }

    @Override
    public String toString() {
        return this.name() + " - " + this.description;
    }
}